package com.itlong.cloud.enumerate;


import com.fasterxml.jackson.annotation.JsonCreator;

/**
 * <desc>
 *      与旺龙一卡通同步数据的操作类型
 * </desc>
 *
 * @createDate 2017-12-21
 */
public enum SmartCardSyncDataOperTypeEnum {

    NONE("未知",0),
    UPDATE("更新", 1),
    DELETE("删除", 2),
    ADD("新增", 3)

    ;
    private String description;  //描述
    private Integer type;  //类型

    /**
     * <desc>
     *     	反序列化时的 初始化函数，入参为 对应该枚举的 json值
     * </desc>
     * @param description
     * @return
     * @author Jiaqi.X
     * @createDate 2017/12/22
     */
    @JsonCreator
    public static SmartCardSyncDataOperTypeEnum getItem(String description){
        for(SmartCardSyncDataOperTypeEnum item : values()){
            if(item.getType().equals(description)){
                return item;
            }
        }
        return Enum.valueOf(SmartCardSyncDataOperTypeEnum.class,description);
    }

    /**
     * <desc>
     *      与旺龙一卡通同步数据操作类型
     * </desc>
     * @param description 描述
     * @param type 类型
     * @author LewisLouis
     * @createDate \
     */
    SmartCardSyncDataOperTypeEnum(String description, Integer type) {
        this.description = description;
        this.type = type;
    }

    public Integer getType(){
        return this.type;
    }


    /**
     * <desc>
     *      根据设备类型获取设备类型的枚举
     * </desc>
     * @param dataOperType 枚举类型
     * @return 枚举描述
     * @author Biao.R
     * @createDate 2017/10/13
     */
    /**
    * <desc>
    *      根据操作类型获取枚举.
    * </desc>
    *
    * @param  dataOperType 操作类型
    * @return 操作类型枚举
    * @author LewisLouis
    * @createDate 2017-12-26
    */
    public static SmartCardSyncDataOperTypeEnum getByDataOperType(Integer dataOperType){
        if (dataOperType != null) {
            for (SmartCardSyncDataOperTypeEnum value : values()) {
                if (value.getType() == dataOperType) {
                    return value;
                }
            }
        }
        return NONE;
    }
}
